Leyes de la Evolución del Software de Lehman
Las Leyes de Lehman sobre la Evolución del Software son un conjunto de principios empíricos que describen cómo los sistemas de software evolucionan a lo largo del tiempo. Formuladas inicialmente por Meir M. Lehman y Laszlo Belady en la década de 1970, estas leyes se han convertido en un marco fundamental para entender la dinámica de los sistemas de software en uso continuo (Herraiz Tabernero et al., 2013).
Contexto y Aplicabilidad
Las leyes se aplican principalmente a los sistemas que evolucionan (e-type), que son aquellos que operan en entornos del mundo real y están sujetos a cambios constantes en su entorno de funcionamiento (Herraiz Tabernero et al., 2013).
Lehman distinguió entre tres tipos de sistemas:
- s-type: Sistemas especificados formalmente.
- p-type: Sistemas que resuelven problemas bien definidos pero computacionalmente complejos.
- e-type: Sistemas que reflejan procesos humanos o partes del mundo rea
Leyes de Lehman
- Ley del Cambio Continuo: Un sistema que se utiliza debe cambiar continuamente o se volverá progresivamente menos útil.
- Ley de la Complejidad Creciente: A medida que un sistema evoluciona, su complejidad aumenta a menos que se trabaje para mantenerla o reducirla.
-
Ley de la Autorregulación: El proceso de evolución del sistema es autorregulador, con distribución de medidas de atributos del proceso y del producto cercana a la normal.
-
Ley de la Conservación de la Estabilidad Organizacional: La tasa de actividad global efectiva en un sistema que evoluciona es invariante a lo largo del tiempo.
-
Ley de la Conservación de la Familiaridad: Durante la evolución de un sistema, el contenido de los incrementos sucesivos de una versión del sistema tiende a ser constante.
-
Ley del Crecimiento Continuo: La funcionalidad de los sistemas debe aumentar continuamente para mantener la satisfacción del usuario.
-
Ley de la Calidad Decreciente: La calidad de los sistemas disminuirá a menos que se mantengan y adapten rigurosamente a los cambios en su entorno operativo.
-
Ley del Sistema de Retroalimentación: Los procesos de evolución constituyen sistemas de retroalimentación multiagente y multicircuito y deben tratarse como tales para lograr una mejora significativa.
Implicaciones y Relevancia Actual
Estas leyes subrayan la naturaleza dinámica del software y la necesidad de una adaptación continua. Aunque formuladas hace décadas, siguen siendo relevantes en el contexto actual de desarrollo de software, especialmente en sistemas complejos y de larga duración (Herraiz Tabernero et al., 2013).
La validez de estas leyes ha sido objeto de numerosos estudios empíricos, con resultados mixtos. Algunas investigaciones han confirmado su aplicabilidad en sistemas de código abierto, mientras que otras han cuestionado su universalidad (Herraiz Tabernero et al., 2013).
Referencias
Herraiz Tabernero, I., Rodriguez, D., Robles, G., y González-Barahona, J. M. (2013). The evolution of the laws of software evolution. A discussion based on a systematic literature review. ACM Computing Surveys, To app. http://csur.acm.org/